package com.qf.common.core.entity.product;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品基本信息表
 *
 * @author GaoQiangLiang
 * @TableName product
 */
@Data
public class Product {

    /**
     * 商品ID，主键
     */
    @NotBlank(message = "[商品ID，主键]不能为空")
    @ApiModelProperty("商品ID，主键")
    private Integer productId;
    /**
     * 商品名称
     */
    @NotBlank(message = "[商品名称]不能为空")
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("商品名称")
    @Length(max = 100, message = "编码长度不能超过100")
    private String productName;
    /**
     * 商品标题/副标题
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("商品标题/副标题")
    @Length(max = 100, message = "编码长度不能超过100")
    private String productTitle;
    /**
     * 商品原价
     */
    @ApiModelProperty("商品原价")
    private BigDecimal productPrice;
    /**
     * 商品销售价
     */
    @NotBlank(message = "[商品销售价]不能为空")
    @ApiModelProperty("商品销售价")
    private BigDecimal productSalePrice;
    /**
     * 商品创建日期
     */
    @NotBlank(message = "[商品创建日期]不能为空")
    @ApiModelProperty("商品创建日期")
    private Date productCreateDate;
    /**
     * 商品分类ID，外键
     */
    @NotBlank(message = "[商品分类ID，外键]不能为空")
    @ApiModelProperty("商品分类ID，外键")
    private Integer productCategoryId;
    /**
     * 商品是否上架(0-下架，1-上架)
     */
    @NotBlank(message = "[商品是否上架(0-下架，1-上架)]不能为空")
    @ApiModelProperty("商品是否上架(0-下架，1-上架)")
    private Integer productIsenabled;
    /**
     * 商品销量
     */
    @NotBlank(message = "[商品销量]不能为空")
    @ApiModelProperty("商品销量")
    private Integer productSaleCount;
    /**
     * 商品评价数量
     */
    @NotBlank(message = "[商品评价数量]不能为空")
    @ApiModelProperty("商品评价数量")
    private Integer productReviewCount;


    /**
     * 商品轮播图
     */
    private String productBanner;


    /**
     * 商品分类方式0:
     */
    private String productSortType;


    /**
     * 商品折扣 0-9.9 折
     */
    private Double productDiscount;

    /**
     * 商品库存
     */
    private BigDecimal productGoodsFav;


    /**
     * 商品规格
     */
    private String productGoodsAre;


    /**
     * 商店ID
     */
    private Integer productShopId;


}
